package com.tiktok.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tiktok.dto.request.VideoUploadRequest;
import com.tiktok.entity.Video;

/**
 * 视频服务接口
 */
public interface VideoService extends IService<Video> {

    /**
     * 获取推荐视频列表
     */
    Page<Video> getRecommendVideos(Long userId, int current, int size);

    /**
     * 获取用户视频列表
     */
    Page<Video> getUserVideos(Long userId, int current, int size);

    /**
     * 发布视频
     */
    void publishVideo(VideoUploadRequest request);

    /**
     * 删除视频
     */
    void deleteVideo(Long videoId);

    /**
     * 点赞/取消点赞视频
     */
    void likeVideo(Long videoId);

    /**
     * 记录视频观看
     */
    void recordVideoView(Long videoId);

    /**
     * 获取上一个视频
     */
    Video getPreviousVideo(Long userId, Long currentVideoId);

    /**
     * 获取下一个视频
     */
    Video getNextVideo(Long userId, Long currentVideoId);
} 